-- CALC_TREES_SOUL_BONUS
-- 知识古树被拘禁灵魂抽取（专用）

return function()
    local seed = DungeonM.getRandSeed("TREES_SOUL");
    local items = { { ["classId"] = 7825, ["ratio"] = 25, } };

    -- 特殊灵魂需要判断是否出现过
    local propertyOccurs = DungeonM.getPropertyOccurs();
    local classId;
    for _, classId in pairs({ 7933, 7934, 7935, }) do
        if not propertyOccurs[classId] then
            table.insert(items, { ["classId"] = classId, ["ratio"] = 25, });
        end
    end

    local class = fetchElemBySeed(items, seed);

    classId = class["classId"];
    if table.indexOf({ 7933, 7934, 7935, }, classId) ~= -1 then
        DungeonM.statPropertyOccurs(classId);
    end

    return classId;
end
